**** I'm always looking for ways to improve this code, so if you find ****
**** any bugs or missing documentation PLEASE let me know. If you make ****
**** additions to the code I'd really like to hear about them. If they ****
**** get added to the framework you will get credit. Thanks. ****
This framework provides a basis for writing CGI applications that will be compatible with MacHTTP and WebSTAR. Included with this distribution you should find every thing you need to quickly begin writing your own CGI applications.
In putting together this distribution, I have attempted to follow as closely as possible the example set by Metrowerks. Included is a starter project and starter source which should immediately compile and provide a simple responder CGI. This responder will simply return an HTML document which displays a list of the all the information received from the calling server. When you run the application on it's own it will simply provide a basic menu bar and little else. ( A basic allow/deny preference box is planned in a future release.)
What do you need to do to write your own application?
1) Make a copy of the CGI++ folder.
2) Open the project and make the following changes:
a) Change the application signature (you can use '????' for testing)
'CGI+' is registered to me for the framework, do not use it.
b) Change the target application name.
3) Change the HandleCGICall method in <CGI Starter Source>.cp
4) Compile and copy the application to your server (MacHTTP or WebSTAR)
What else you should know:
I've tried to make the starter application and class code self documented. If you find _anything_ confusing or think I've left something out PLEASE let me know so I can correct it in future versions.
The LCHandleStream class currently only supports argumentless modifiers and basic data types in its '<<' operator. I will be adding more types in future versions. In the mean time feel free to add your own ( I'd like to hear about them too). If you have questions about this e-mail me and I'll do my best to help you. Data written to 'sout' in HandleCGICall will not be sent until the routine returns. Server push is no yet available.
My own comments:
This is a continuing work. I'd very much like to hear you comments and ideas. You can e-mail me at btodorof@hmc.edu. A WWW page is in the works.
My thanks and admiration:
To all the awsome programers, designers, customer support, and documentation writters at Metrowerks: You people are awsome! Thanks for a great job and for making prrogramming the Mac as much fun as it should be!
To Grant Neufeld for the C framework which inspired some of this design and helped me figure out the MacHTTP and CGI interface when I first started programming for the WWW.
Legal Stuff
Basically what this means is that individuals and educational institutions may use this code without charge provided that they don't charge for what ever is produced using it. Business and commercial users require my explicit written permission to use this code or any derivative in a product they sell and may be subject to a licensing fee. If you use it in a program that is distributed in any way, or if you place it on a CD archive please let me know.
The 'CGI++ Framework', referred to hereon as 'the code' and including but not limited to the source and any compiled form, is provided as is with no warranty, express or implied, as to it's fitness for any particular purpose. The author is not responsible in any way for damages involved in or resulting from it's use.
The code may be used by individuals and educational institutions without charge providing that neither the code or and derivative work is sold for profit or charged for in any for besides media and shipping costs for distribution.
Any use of the code or any derivative work or work containing the code which is distributed, sold, or charged for in any form requires the express written permission of the author and is subject to licensing.
The code may be distributed only in the form of the distribution package as provided by the author and must include all documentation and files. This package may be uploaded to on-line services and bulletin board services. The package may be included in any CD archive with the additional request that the author be notified at btodorof@hmc.edu.